时间(date)
-
获取当前的时间戳
date +%s 1570093753
-
时间戳转化为可读时间
date -d @1570093753 "+%Y%m%d %H:%M:%S" 20191003 18:09:13
-
时间偏移计算
date -d "2019-10-03 30 days ago" "+%Y%m%d" 20190903
-
获取当前是周几
date +%u # day of week (1..7); 1 is Monday date +%w # day of week (0..6); 0 is Sunday 4
-
其他更详细的用法
man date
排序(sort)
-
主要用于小文件排序(sort lines of text files)
sort -t ',' -k 2 -nr ./file_name #次将文件用,分割,对第2列(从1开始算),按照数字顺序(numeric-sort)将整行内容降序排列
-
文件快速去重
sort -u ./file_name
-
其他更详细的用法
man sort
查找(find)
-
找到文件夹中最大的文本
find /path/to/file -name "*txt" | xargs ls -li|sort -k 6|tail -n 1
-
找到文件夹中30天前修改的文件并打印/删除
find /path/to/file -mindepth 1 -mtime +30 -print find /path/to/file -mindepth 1 -mtime +30 -delete
curl
-
Get 请求
curl -i -H "Accept: application/json" "www.baidu.com" | less
-
Post 请求(json)
curl -X POST -H "Accept: Application/json" -H "Content-Type: application/json" -d '{"id":"IDVALUE","name":"Mike"}' http://hostname/api
-
Post请求(data)
curl --data "secret_key=sec&id=2&phone=1980000000" http://hostname/api
-
获取http状态(比如200, 404)
curl -sL -w "%{http_code}" "www.baidu.com" -o /dev/null
-
发送钉钉报警(也是一个Post)
message="dingtalk_message" curl -H "Content-type: application/json" -X POST -d '{"msgtype": "text","text": {"content": "'$message'"}}' $dingtalk_webhook
定时任务(crontab)
-
格式
min hour day month week \* * * * * comand(第一个反斜杠是为了markdown展示用的) 第一列表示0-59分钟;每分钟使用*/1表示 第二列表示0-23小时(0表示0点) 第三列表示日期1-31 第四列表示月份1-12 第五列表示星期0-6(0表示周日) 第六列表示需要执行的命令,命令可以加用户名(如),命令后可以加参数(如日期)
-
示例
45 4 1,10,22 * * command #每月1,10,22日的4:45执行命令 0,30 18-23 * * * command >> /path/to/log 2>&1 #18时到23时每半小时执行一次命令,command的输出可以重定向到日志文件 \* */1 * * * command `data +\%Y\%m\%d` #每小时执行命令,command可以带日期参数(第一个反斜杠是为了markdown展示用的)
-
注意事项
- 日志文件 /var/log/cron (用来查看crontab中某条命令是否执行了)
- crontab 中日期命令%要加转义,如
data +\%Y\%m\%d
- 如果 /path/to/log 这个目录不存在,crontab 不会正常执行,而且没有报错信息
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。